草庐IT

Java 反射与代码生成

全部标签

javascript - 如何将 JavaScript 代码拆分为多个文件并使用它们而不通过 HTML 中的脚本标记包含它们?

我正在广泛使用构造函数(类),并希望每个构造函数都在一个单独的文件中(类似于Java)。假设我有构造函数说Class1、Class2、...Class10,我只想使用Class1和Class5我需要使用脚本标记将Class1.js和Class2.js包含到HTML页面中。稍后如果我还需要使用Class3和Class6,我需要再次转到HTML页面并为它们添加脚本标签。这种方式维护性太差。JavaScript中有类似C的include指令的东西吗?如果不是,有没有办法模拟这种行为? 最佳答案 您可以使用jQuery.getScript:

c# - 使用 ajax 将 javascript 数组发送到代码隐藏 (c#)

我对C#和javascript有点陌生,所以虽然我的问题很具体,但我愿意接受任何替代方案。我有一组值(我在javascript函数中创建的),我想发送到我的代码隐藏文件以在方法中使用。根据我的研究,使用ajax并使用JSON对数组进行字符串化似乎是最好的方法。我的问题是我可以使用这种方法传递数组吗?如何在服务器端捕获信息(在我的代码隐藏中?)Javascript传递值varjsonvalues=JSON.stringify(values);varcallback=window.location.href$.ajax({url:callbacktype:"POST",contentTyp

javascript - 从代码生成的 INPUT 元素中选择文件后,不会触发事件 onChange

我正在玩JavaScript并编写了创建INPUT元素(type="file")并模拟点击的简单函数。varcreateAndCallFileSelect=function(){varinput=document.createElement("input");input.setAttribute("type","file");input.addEventListener("change",function(){console.log(this.files);},false);input.click();}它大部分时间都很好用,但有时它不会在选择文件时触发onChange事件(或者在IN

javascript - TypeScript:自动生成的动态函数名称

我在TypeScript中有一些动态生成的函数名称。我现在可以使用它们的唯一方法是将我的对象转换为.例如:myInstance.getDataA().这些函数是根据一些规则动态生成的。基于相同的规则,我想为我的class生成类型定义。es,但我无法让它工作。原始.tsabstractclassOriginal{dynamics=['getData','setData'];constructor(){//Icreatefunctionsheredynamicallythis.dynamics.forEach((key)=>{this[key+this.info]=()=>null;});

javascript - jQuery.remove(),分离 DOM 元素,但我仍然可以从代码中访问这些元素。如何避免泄漏?

我知道在具有大量UI元素且完全基于Ajax的应用程序中正确管理内存并不容易(在我的应用程序中,页面永远不会重新加载)。但我想了解以下行为:我有一个根元素,一次必须附加一个子元素(将其视为根元素是应用程序容器,子元素是单个页面)。每当我在子内容之间切换时,我都会使用jQuery.remove()删除之前的内容,但我发现该内容实际上已从DOM中分离出来,但仍保留在内存中。root和两个子内容(child1和child2)我从child1切换到child2,要求我的应用程序管理器在附加child2之前删除child1正在附加child2(我可以看到),但我仍然可以使用管理child1的代码中

javascript - 简单的 JavaScript 代码使 Firefox 崩溃

在Firebug的控制台中vara=[];a[0]=a;Firefox崩溃了!为什么?编辑:这个说法在逻辑上是正确的,引用递归也没有什么不好的。因此这是browserFirebug中的错误。在Chrome和Opera中运行良好。我使用的是Firebug和Firefox的最新官方版本编辑2:它在Firebug控制台中崩溃并在nativeFirefox网络控制台中工作 最佳答案 我认为这是一个Firebug错误。它在内置的firefox控制台(ctrl+shift+k)、chrome控制台和opera控制台中运行良好。我会用firebu

javascript - 在构建过程中将代码包装在自定义闭包中

我想在使用Grunt(和uglify)构建过程中将我的代码包装在自定义类型的闭包中。此操作必须保持sourceMap正常工作。我的用例是将所有代码包装在try/catchblock中,以允许记录生产中的错误-而不会失去对堆栈跟踪的访问(与window.onerror)。我可能会使用Raven-js1.0来解决这个问题。任何人都知道我如何轻松地管理它?如果您有可能带来完整答案的提示,我们也会接受 最佳答案 最后,我找到了一个grunt插件(grunt-wrap),它正是这样做的:wrap:{modules:{src:['assets/

javascript - HotJar 如何生成他们的录音?

跟踪鼠标移动/滚动/点击事件很容易,但它们如何保存屏幕并保持同步如此好?页面呈现得非常好(至少对于静态HTML页面而言,尚未在Angular或任何SPA上测试),同步几乎完美。要生成并上传我的屏幕(1920x1080)的23fps记录,需要大约2Mbps的带宽。也许只有在有一些鼠标事件时才进行录制时,平均仍需要300-500Kbps的速度?这似乎太多了...... 最佳答案 HTML内容和DOM更改通过websocket传输并由Hotjar存储(减去敏感信息,例如来自用户的表单输入,除非您将它们列入白名单),CSS不存储(它由您加载

javascript - 将 Canvas 图像和 Canvas alpha 蒙版合并到 dataurl 生成的 png

给定两个像素大小相同的Canvas,其中canvas1包含任意图像(jpg、png等),canvas2包含黑色和非黑色像素。我想要实现的目标:使用第三个canvas3我想克隆canvas1并让每个黑色canvas2像素(可能包括黑色阈值)在canvas3中都是透明的我已经有了这样一个可行的解决方案:canvas3context.drawImage(canvas1,0,0);varc3img=canvas3context.getImageData(0,0,canvas3.width,canvas3.height);varc2img=canvas2context.getImageData(

javascript - 异步库中 `root=...` 代码的用途是什么?

Asynclibrary中有这段代码:if(typeofwindow=='object'&&this===window){root=window;}elseif(typeofglobal=='object'&&this===global){root=global;}else{root=this;}所有这些代码有什么原因吗?为什么作者不直接使用root=this?第一个条件只在this===window时有效,所以root=window和root=this应该是等价的。在第二个条件下也是一样,其中root=global应该等同于root=this。我是不是漏掉了什么?